package cn.zqy.demo2.day13StreamAndMethodReference.MethodReference;

/**
    通过【对象名引用成员方法】
    使用前提是对象名是已经存在的,成员方法也是已经存在
    就可以使用对象名来引用成员方法
 */
public class Demo02ObjectMethodReference {
    public static void get(Printable p) {
        p.print("hello tang tang我是谁，我在哪？我要去哪？");
    }
    public static void main(String[] args) {
        get((s) -> {
            // 创建ObjectMethod对象
            ObjectMethod obj = new ObjectMethod();
            // 调用ObjectMethod对象中的成员方法getUpper,把字符串按照大写输出
            obj.getUpper(s);
        });

        /*
            使用方法引用优化Lambda
            对象是已经存在的ObjectMethod
            成员方法也是已经存在的getUpper
            所以我们可以使用对象名引用成员方法
         */
        get(new ObjectMethod()::getUpper);

    }
}
